The invention relates generally to the area of communication buses, and more particularly to a system and method for communicating between a device and multiple hosts of a Universal Serial Bus.
The provision of redundant systems in areas where uninterrupted operation is required are well known. Such uninterrupted operations may be desired for any combination of economic and safety considerations. Redundant systems are found in many industrial settings including; chemical plants and utility power systems. Redundant systems are also employed in real time computer and communications systems as might by used in on-line data processing systems as are used in banking and telephone switching, for example. It is also often the case where critical systems are located in remote, difficult to access or hazardous locations. In such cases the provision of redundancy not only allows for improved operational reliability but allows for system maintenance and software or firmware upgrading to be performed remotely as the operations can be assigned to the system that is not currently being upgraded.
Computer systems used in the above applications often take the form of industrial or xe2x80x9crack basedxe2x80x9d computers. Such computers will comprise a system processor and one or more peripheral boards. The system processor provides control functions for the industrial computer and controls the communications amongst peripheral boards. The peripheral boards provide the functionality of the industrial computer. The particular peripheral boards selected for use in an industrial computer are determined by the tasks to be performed by a given industrial computer.
It is often the case that one would like a given industrial computer to have a high degree of reliability. Redundant components can be used to increase the reliability of the computer by providing continued functionality in cases of component failure. It is also the case that one does not wish to provide redundant peripheral boards due to the cost and physical space requirements of this option. However, redundant system processors and communication buses may be provided in industrial computers. In such cases the industrial computer will comprise one or more peripheral boards, two or more system processors, and two or more redundant buses that are connected to and associated with the redundant system processors.
The Universal Serial Bus (USB) has achieved more widespread use over the last several years in the Personal Computer (PC) field. The bus is a serial telecommunications bus configured in a tiered star topology. A USB is suited to large real-time data such as voice, audio and compressed video. The protocols of the USB are outlined in the Universal Serial Bus Specification, Revision 1.1, Sep. 23, 1998.
There are numerous attributes of the USB that have allowed this increase in use including; xe2x80x98plug and playxe2x80x99 capabilities that allow a given device to be added or removed from the USB without reinitialization, the ability to leave an unterminated end on the bus, and the ability for data transfer rates of up to 25 Mbits/s and the ability to connect up to 127 devices to a single port at the USB. The above list is not meant to be exhaustive and those of skill in the art may anticipate other advantages of the USB. Those of skill in the art will also recognise many of the above capabilities make the USB attractive for use in industrial computers where there may be a large number peripheral boards to which communication is required. Further, these peripheral boards may be inserted into or removed from the industrial computer during its operation. It is quite that the insertion or removal of a peripheral board does not disturb or disrupt USB communications with the other peripheral boards in the industrial computer.
A USB is well suited to situations where a peripheral board has failed and it is producing large amounts of data to the bus. Since communication on a USB are based on a time stamp, i.e. it sweeps across the various devices for a predetermined length of time and receives data during this time, a USB does not allow continuous interruption of communications due to problems that may be occurring on a single peripheral board.
An example of a typical topology for a USB is shown in FIG. 1. A typical USB star topology takes the form of a pyramid with single USB host 102 at the apex of the pyramid. USBs originating from USB host 102 may either be connected to USB node 104 or USB hub 106. USBs originating from USB hub 106 may in turn be connected to USB nodes 110 or USB hub 108. The bifurcating of the USB from a single connection to host 102 can continue until there are up to 127 USB nodes. USB nodes 104 and 110 accept devices or functions, where a function is a USB device that is able to transmit or receive data over the bus. A USB node can only be connected to a USB hub. Devices 104 that appear to be connected to USB host 102 are actually connected to root USB hub 112 within USB host 102 through which-the USB connections are routed. Finally, each USB forms a point-to-point connection between USB host 102 and USB nodes 104 or 110 with any USB hubs located between these points not being electrically visible. The overall structure between USB host 102 and the plurality of USB nodes is referred to as a USB tree.
As is apparent in FIG. 1 current USB trees consider a single USB host. Thus, a USB is not traditionally configured for operation with multiple USB hosts with one host being the active host and the other being in a standby state. Therefore, there is a need for a system and method of operation that allow a plurality of USB functions to be connected to multiple USB hosts. The system would allow for communication between a plurality of functions and one of multiple hosts. Further, the functions would be isolated from the host that is in a standby state.
The invention is directed to a system and method of operation for connecting at least one USB function to at least two USB hosts. The system of the invention provides a USB tree between each USB host and the at least one USB function. The system further contains provisions for isolating a given USB host from the at least one USB function.
In accordance with one aspect of the invention a universal serial bus system for communication between multiple universal serial bus hosts and a universal serial bus node is provided. The universal serial bus system comprises; multiple first universal serial bus segments, each having a first end and a second end, each first end being connectable to one of multiple universal serial bus hosts, multiple second universal serial bus segments, each having a first end and a second end, each first end being connectable to a universal serial bus node, multiple isolators, each provided between the second end of one of the first universal serial bus segments and the second end of one of the second universal serial bus segments, each isolator establishing communication between its associated one of the multiple universal serial bus hosts and the universal serial bus node through its associated first and second universal serial bus segments when it is disabled, and isolating the associated one of the multiple universal serial bus hosts from the universal serial bus node when it is enabled, and logic for controlling the enablement/disablement of the multiple isolators.
In accordance with another aspect of the invention a computer using a universal serial bus system for communication between one or more universal serial bus functions and two or more universal serial bus hosts is presented. The computer comprises; multiple universal serial bus hosts, multiple first universal serial bus segments, each of the first universal serial bus segments having a first end and a second end, the first end being connected to one of the multiple a universal serial bus hosts, each of the first universal serial bus segments being associated with the universal serial bus host to which it is connected, multiple connectors forming a universal serial bus nodes, each suitable for receiving a universal serial bus function, multiple second universal serial bus segments, each of the second universal serial bus segments having a first end and a second end, the first end being connected to one of the multiple connectors, each second universal serial bus segment being associated with a universal serial bus host, and two or more isolators, each of the isolators being connected to the second end of a first universal serial bus segment and a second end of a second universal serial bus segment, each isolator being associated with a universal serial bus host, the isolators allowing communication between the a connector and a universal serial bus host when it is disabled, the isolators isolating a connector from a universal serial bus host when it is enabled.
In accordance with another aspect of the invention a method of switching communications from between a universal serial bus function and a first universal serial bus host to between the universal serial bus function and a second universal serial bus host wherein the universal serial bus function is one of at least one universal serial bus functions and the first and second universal serial bus hosts are two of at least two universal serial bus hosts, the at least one universal serial bus function is connected to and communications with the at least two universal serial bus hosts by way of at least two universal serial buses wherein the universal serial bus between a universal serial bus function and a universal serial bus host contains an isolator therebetween is presented. The method comprising the steps of; enabling the isolator located between the universal serial bus function and the first universal serial bus host, the first universal serial bus host being initially active, the first universal serial bus host being initially in communication with the function, disconnecting the first universal serial bus host, disabling the isolator located between the universal serial bus function and the second universal serial bus host, the second universal serial bus host being initially in a standby state, the second universal serial bus host now being the active universal serial bus host, the first universal serial bus host being initially isolated from the function, detecting the presence of a signal on the universal serial bus function by the second universal serial bus host, and enumerating the universal serial bus function by the second universal serial bus host.